package com.cma.service;

import com.cma.model.db.Tcrealtime;
import com.cma.model.param.HistctrackParam;
import com.cma.model.param.Lonlat;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * 西北太平洋热带气旋实时信息表
 * 数据库表【tcrealtime】对应的service接口
 *
 * @author  bjs
 * @date 2017-01-03 18:59:19
 */
public interface TcrealtimeService {

    /**
     * 保存或更新对象
     *
    * @param tcrealtime
    */
    void save(Tcrealtime tcrealtime);

    /**
     * 提供给管理使用的分页查询
     *
     * @param pageable
     * @return
     */
    Page<Tcrealtime> findForAdminList(Pageable pageable);

    /**
     * 通过id查找对象
     *
     * @param id
     * @return
     */
    Tcrealtime findById(Long id);



    /**
     * 根据台风编号查询台风数据
     * @param tfbh
     * @return
     */
    List<Tcrealtime> findPathData(String tfbh);

    /**
     * 获取最新的实时的台风
     * @return
     */
    List<Tcrealtime> findCrealtieData();

    /**
     *获取历年最大风速
     * @param histctrackParam
     * @return
     */
    Map<String,String> getMaxFs(HistctrackParam histctrackParam);

    /**
     * 获取台风强度出现频率
     * @param histctrackParam
     * @return
     */
    Map<String,String> getMaxStrength(HistctrackParam histctrackParam);

    /**
     * 获取最新路径
     * @param newbh
     * @return
     */
    List<Tcrealtime> findPathDatas(String newbh);

    /**
     * 根据编号与时间点 --- 获取美国综合预报路径
     * @param tfbh 台风编号
     * @return
     */
    Map<String,List<Tcrealtime>> find_PGTW_PathData(String tfbh);
    /**
     * 根据编号与时间点 --- 获取日本综合预报路径
     * @param tfbh 台风编号
     * @return
     */
    Map<String,List<Tcrealtime>> find_RJTD_PathData(String tfbh);

    List<Lonlat> findDataByRect(Lonlat maxLonlat, Lonlat minLonlat);

    Map<String,String> getStrengthStat(String substring);
}
